#ifndef IS_H
#define IS_H
//******************************************************************************
//this code is protected by the GNU affero GPLv3 with a lesser exception
//for video games
//author:Sylvain BERTRAND <sylvain.bertrand AT gmail dot com>
//                        <digital.ragnarok AT gmail dot com>
//******************************************************************************

#define FMT_SOP2   0
#define FMT_SOPK   1
#define FMT_SOP1   2
#define FMT_SOPC   3
#define FMT_SOPP   4
#define FMT_SMRD   5
#define FMT_VOP2   6
#define FMT_VOP1   7
#define FMT_VOPC   8
#define FMT_VOP3A  9
#define FMT_VOP3B  10
#define FMT_VINTRP 11
#define FMT_DS     12
#define FMT_MUBUF  13
#define FMT_MTBUF  14
#define FMT_MIMG   15
#define FMT_EXP    16

struct i_mnemonic_map{
  k_u8 *mnemonic;
  k_u32 fmts;
  k_s16 op_base;//base to compute operation codes fit to the different formats
};

#ifndef BIT
#define BIT(x) (1<<(x))
#endif

//instruction fields
#define F_SSRC0    0
#define F_SSRC1    1
#define F_SDST     2
#define F_SIMM16   3
#define F_OFFSET   4
#define F_IMM      5
#define F_SBASE    6
#define F_SRC0     7
#define F_SRC1     8
#define F_SRC2     9
#define F_VSRC0    10
#define F_VSRC1    11
#define F_VSRC2    12
#define F_VSRC3    13
#define F_VDST     14
#define F_ABS      15
#define F_CLAMP    16
#define F_OMOD     17
#define F_NEG      18
#define F_VSRC     19
#define F_ATTRCHAN 20
#define F_ATTR     21
#define F_OFFSET0  22
#define F_OFFSET1  23
#define F_GDS      24
#define F_ADDR     25
#define F_DATA0    26
#define F_DATA1    27
#define F_OFFEN    28
#define F_IDXEN    29
#define F_GLC      30
#define F_ADDR64   31
#define F_LDS      32
#define F_VADDR    33
#define F_VDATA    34
#define F_SRSRC    35
#define F_SLC      36
#define F_TFE      37
#define F_SOFFSET  38
#define F_DFMT     39
#define F_NFMT     40
#define F_DMASK    41
#define F_UNORM    42
#define F_DA       43
#define F_R128     44
#define F_LWE      45
#define F_SSAMP    46
#define F_EN       47
#define F_TGT      48
#define F_COMPR    49
#define F_DONE     50
#define F_VM       51
#define F_VM_CNT   52//virtual field for s_waitcnt, actually in F_SIMM16
#define F_EXP_CNT  53//virtual field for s_waitcnt, actually in F_SIMM16
#define F_LGKM_CNT 54//virtual field for s_waitcnt, actually in F_SIMM16
#define F_INVALID  55

static k_u16 fmt_op_offset(k_u32 fmts,k_u32 fmt)
{
  if(fmts==(BIT(FMT_VOP1)|BIT(FMT_VOP3A))&&fmt==FMT_VOP3A) return 384;
  if(fmts==(BIT(FMT_VOP2)|BIT(FMT_VOP3A))&&fmt==FMT_VOP3A) return 256;
  return 0;
}

#ifdef IS_C
#define _(x) ((k_u8*)x)
struct i_mnemonic_map i_mnemonic_maps[]={
  //----------------------------------------------------------------------------
  {_("s_add_u32"),BIT(FMT_SOP2),0},
  {_("s_sub_u32"),BIT(FMT_SOP2),1},
  {_("s_add_i32"),BIT(FMT_SOP2),2},
  {_("s_sub_i32"),BIT(FMT_SOP2),3},
  {_("s_addc_u32"),BIT(FMT_SOP2),4},
  {_("s_subb_u32"),BIT(FMT_SOP2),5},
  {_("s_min_i32"),BIT(FMT_SOP2),6},
  {_("s_min_u32"),BIT(FMT_SOP2),7},
  {_("s_max_i32"),BIT(FMT_SOP2),8},
  {_("s_max_u32"),BIT(FMT_SOP2),9},
  {_("s_cselect_b32"),BIT(FMT_SOP2),10},
  {_("s_cselect_b64"),BIT(FMT_SOP2),11},
  {_("s_and_b32"),BIT(FMT_SOP2),14},
  {_("s_and_b64"),BIT(FMT_SOP2),15},
  {_("s_or_b32"),BIT(FMT_SOP2),16},
  {_("s_or_b64"),BIT(FMT_SOP2),17},
  {_("s_xor_b32"),BIT(FMT_SOP2),18},
  {_("s_xor_b64"),BIT(FMT_SOP2),19},
  {_("s_andn2_b32"),BIT(FMT_SOP2),20},
  {_("s_andn2_b64"),BIT(FMT_SOP2),21},
  {_("s_orn2_b32"),BIT(FMT_SOP2),22},
  {_("s_orn2_b64"),BIT(FMT_SOP2),23},
  {_("s_nand_b32"),BIT(FMT_SOP2),24},
  {_("s_nand_b64"),BIT(FMT_SOP2),25},
  {_("s_nor_b32"),BIT(FMT_SOP2),26},
  {_("s_nor_b64"),BIT(FMT_SOP2),27},
  {_("s_xnor_b32"),BIT(FMT_SOP2),28},
  {_("s_xnor_b64"),BIT(FMT_SOP2),29},
  {_("s_lshl_b32"),BIT(FMT_SOP2),30},
  {_("s_lshl_b64"),BIT(FMT_SOP2),31},
  {_("s_lshr_b32"),BIT(FMT_SOP2),32},
  {_("s_lshr_b64"),BIT(FMT_SOP2),33},
  {_("s_ashr_i32"),BIT(FMT_SOP2),34},
  {_("s_ashr_i64"),BIT(FMT_SOP2),35},
  {_("s_bfm_b32"),BIT(FMT_SOP2),36},
  {_("s_bfm_b64"),BIT(FMT_SOP2),37},
  {_("s_imul_i32"),BIT(FMT_SOP2),38},
  {_("s_bfe_u32"),BIT(FMT_SOP2),39},
  {_("s_bfe_i32"),BIT(FMT_SOP2),40},
  {_("s_bfe_u64"),BIT(FMT_SOP2),41},
  {_("s_bfe_i64"),BIT(FMT_SOP2),42},
  {_("s_cbranch_g_fork"),BIT(FMT_SOP2),43},
  {_("s_absdiff_i32"),BIT(FMT_SOP2),44},
  //----------------------------------------------------------------------------
  {_("s_movk_i32"),BIT(FMT_SOPK),0},
  {_("s_cmovk_i32"),BIT(FMT_SOPK),2},
  {_("s_cmpk_eq_i32"),BIT(FMT_SOPK),3},
  {_("s_cmpk_lg_i32"),BIT(FMT_SOPK),4},
  {_("s_cmpk_gt_i32"),BIT(FMT_SOPK),5},
  {_("s_cmpk_ge_i32"),BIT(FMT_SOPK),6},
  {_("s_cmpk_lt_i32"),BIT(FMT_SOPK),7},
  {_("s_cmpk_le_i32"),BIT(FMT_SOPK),8},
  {_("s_cmpk_eq_u32"),BIT(FMT_SOPK),9},
  {_("s_cmpk_lg_u32"),BIT(FMT_SOPK),10},
  {_("s_cmpk_gt_u32"),BIT(FMT_SOPK),11},
  {_("s_cmpk_ge_u32"),BIT(FMT_SOPK),12},
  {_("s_cmpk_lt_u32"),BIT(FMT_SOPK),13},
  {_("s_cmpk_le_u32"),BIT(FMT_SOPK),14},
  {_("s_addk_i32"),BIT(FMT_SOPK),15},
  {_("s_mulk_i32"),BIT(FMT_SOPK),16},
  {_("s_cbrank_i_fork"),BIT(FMT_SOPK),17},
  {_("s_getreg_b32"),BIT(FMT_SOPK),18},
  {_("s_setreg_b32"),BIT(FMT_SOPK),19},
  {_("s_setreg_imm32_b32"),BIT(FMT_SOPK),21},
  //----------------------------------------------------------------------------
  {_("s_mov_b32"),BIT(FMT_SOP1),3},
  {_("s_mov_b64"),BIT(FMT_SOP1),4},
  {_("s_cmov_b32"),BIT(FMT_SOP1),5},
  {_("s_cmov_b64"),BIT(FMT_SOP1),6},
  {_("s_not_b32"),BIT(FMT_SOP1),7},
  {_("s_not_b64"),BIT(FMT_SOP1),8},
  {_("s_wqm_b32"),BIT(FMT_SOP1),9},
  {_("s_wqm_b64"),BIT(FMT_SOP1),10},
  {_("s_brev_b32"),BIT(FMT_SOP1),11},
  {_("s_brev_b64"),BIT(FMT_SOP1),12},
  {_("s_bcnt0_i32_b32"),BIT(FMT_SOP1),13},
  {_("s_bcnt0_i32_b64"),BIT(FMT_SOP1),14},
  {_("s_bcnt1_i32_b32"),BIT(FMT_SOP1),15},
  {_("s_bcnt1_i32_b64"),BIT(FMT_SOP1),16},
  {_("s_ff0_i32_b32"),BIT(FMT_SOP1),17},
  {_("s_ff0_i32_b64"),BIT(FMT_SOP1),18},
  {_("s_ff1_i32_b32"),BIT(FMT_SOP1),19},
  {_("s_ff1_i32_b64"),BIT(FMT_SOP1),20},
  {_("s_flbit_i32_b32"),BIT(FMT_SOP1),21},
  {_("s_flbit_i32_b64"),BIT(FMT_SOP1),22},
  {_("s_flbit_i32"),BIT(FMT_SOP1),23},
  {_("s_flbit_i32_i64"),BIT(FMT_SOP1),24},
  {_("s_sext_i32_i8"),BIT(FMT_SOP1),25},
  {_("s_sext_i32_i16"),BIT(FMT_SOP1),26},
  {_("s_bitset0_b32"),BIT(FMT_SOP1),27},
  {_("s_bitset0_b64"),BIT(FMT_SOP1),28},
  {_("s_bitset1_b32"),BIT(FMT_SOP1),29},
  {_("s_bitset1_b64"),BIT(FMT_SOP1),30},
  {_("s_getpc_b64"),BIT(FMT_SOP1),31},
  {_("s_settpc_b64"),BIT(FMT_SOP1),32},
  {_("s_swappc_b64"),BIT(FMT_SOP1),33},
  {_("s_rfe_b64"),BIT(FMT_SOP1),34},
  {_("s_and_saveexec_b64"),BIT(FMT_SOP1),36},
  {_("s_or_saveexec_b64"),BIT(FMT_SOP1),37},
  {_("s_xor_saveexec_b64"),BIT(FMT_SOP1),38},
  {_("s_andn2_saveexec_b64"),BIT(FMT_SOP1),39},
  {_("s_orn2_saveexec_b64"),BIT(FMT_SOP1),40},
  {_("s_nand_saveexec_b64"),BIT(FMT_SOP1),41},
  {_("s_nor_saveexec_b64"),BIT(FMT_SOP1),42},
  {_("s_xnor_saveexec_b64"),BIT(FMT_SOP1),43},
  {_("s_quadmask_b32"),BIT(FMT_SOP1),44},
  {_("s_quadmask_b64"),BIT(FMT_SOP1),45},
  {_("s_movrels_b32"),BIT(FMT_SOP1),46},
  {_("s_movrels_b64"),BIT(FMT_SOP1),47},
  {_("s_movreld_b32"),BIT(FMT_SOP1),48},
  {_("s_movreld_b64"),BIT(FMT_SOP1),49},
  {_("s_cbranch_join"),BIT(FMT_SOP1),50},
  {_("s_abs_i32"),BIT(FMT_SOP1),52},
  {_("s_mov_fed_b32"),BIT(FMT_SOP1),53},
  //----------------------------------------------------------------------------
  {_("s_cmp_eq_i32"),BIT(FMT_SOPC),0},
  {_("s_cmp_lg_i32"),BIT(FMT_SOPC),1},
  {_("s_cmp_gt_i32"),BIT(FMT_SOPC),2},
  {_("s_cmp_ge_i32"),BIT(FMT_SOPC),3},
  {_("s_cmp_lt_i32"),BIT(FMT_SOPC),4},
  {_("s_cmp_le_i32"),BIT(FMT_SOPC),5},
  {_("s_cmp_eq_u32"),BIT(FMT_SOPC),6},
  {_("s_cmp_lg_u32"),BIT(FMT_SOPC),7},
  {_("s_cmp_gt_u32"),BIT(FMT_SOPC),8},
  {_("s_cmp_ge_u32"),BIT(FMT_SOPC),9},
  {_("s_cmp_lt_u32"),BIT(FMT_SOPC),10},
  {_("s_cmp_le_u32"),BIT(FMT_SOPC),11},
  {_("s_bitcmp0_b32"),BIT(FMT_SOPC),12},
  {_("s_bitcmp1_b32"),BIT(FMT_SOPC),13},
  {_("s_bitcmp0_b64"),BIT(FMT_SOPC),14},
  {_("s_bitcmp1_b64"),BIT(FMT_SOPC),15},
  {_("s_setvskip"),BIT(FMT_SOPC),16},
  //----------------------------------------------------------------------------
  {_("s_nop"),BIT(FMT_SOPP),0},
  {_("s_endpgm"),BIT(FMT_SOPP),1},
  {_("s_branch"),BIT(FMT_SOPP),2},
  {_("s_cbranch_scc0"),BIT(FMT_SOPP),4},
  {_("s_cbranch_scc1"),BIT(FMT_SOPP),5},
  {_("s_cbranch_vccz"),BIT(FMT_SOPP),6},
  {_("s_cbranch_vccnz"),BIT(FMT_SOPP),7},
  {_("s_cbranch_execz"),BIT(FMT_SOPP),8},
  {_("s_cbranch_execnz"),BIT(FMT_SOPP),9},
  {_("s_barrier"),BIT(FMT_SOPP),10},
  {_("s_waitcnt"),BIT(FMT_SOPP),12},
  {_("s_sethalt"),BIT(FMT_SOPP),13},
  {_("s_sleep"),BIT(FMT_SOPP),14},
  {_("s_setprio"),BIT(FMT_SOPP),15},
  {_("s_sendmsg"),BIT(FMT_SOPP),16},
  {_("s_sendmsghalt"),BIT(FMT_SOPP),17},
  {_("s_trap"),BIT(FMT_SOPP),18},
  {_("s_icache_inv"),BIT(FMT_SOPP),19},
  {_("s_incperflevel"),BIT(FMT_SOPP),20},
  {_("s_decperflevel"),BIT(FMT_SOPP),21},
  {_("s_ttracedata"),BIT(FMT_SOPP),22},
  //----------------------------------------------------------------------------
  {_("s_load_dword"),BIT(FMT_SMRD),0},
  {_("s_load_dwordx2"),BIT(FMT_SMRD),1},
  {_("s_load_dwordx4"),BIT(FMT_SMRD),2},
  {_("s_load_dwordx8"),BIT(FMT_SMRD),3},
  {_("s_load_dwordx16"),BIT(FMT_SMRD),4},
  {_("s_buffer_load_dword"),BIT(FMT_SMRD),8},
  {_("s_buffer_load_dwordx2"),BIT(FMT_SMRD),9},
  {_("s_buffer_load_dwordx4"),BIT(FMT_SMRD),10},
  {_("s_buffer_load_dwordx8"),BIT(FMT_SMRD),11},
  {_("s_buffer_load_dwordx16"),BIT(FMT_SMRD),12},
  {_("s_memtime"),BIT(FMT_SMRD),30},
  {_("s_dcache_inv"),BIT(FMT_SMRD),31},
  //----------------------------------------------------------------------------
  {_("v_cndmask_b32"),BIT(FMT_VOP2)|BIT(FMT_VOP3A),0},
  {_("v_readlane_b32"),BIT(FMT_VOP2)|BIT(FMT_VOP3A),1},
  {_("v_writelane_b32"),BIT(FMT_VOP2)|BIT(FMT_VOP3A),2},
  {_("v_add_f32"),BIT(FMT_VOP2)|BIT(FMT_VOP3A),3},
  {_("v_sub_f32"),BIT(FMT_VOP2)|BIT(FMT_VOP3A),4},
  {_("v_subrev_f32"),BIT(FMT_VOP2)|BIT(FMT_VOP3A),5},
  {_("v_mac_legacy_f32"),BIT(FMT_VOP2)|BIT(FMT_VOP3A),6},
  {_("v_mul_legacy_f32"),BIT(FMT_VOP2)|BIT(FMT_VOP3A),7},
  {_("v_mul_f32"),BIT(FMT_VOP2)|BIT(FMT_VOP3A),8},
  {_("v_mul_i32_i24"),BIT(FMT_VOP2)|BIT(FMT_VOP3A),9},
  {_("v_mul_hi_i32_i24"),BIT(FMT_VOP2)|BIT(FMT_VOP3A),10},
  {_("v_mul_u32_u24"),BIT(FMT_VOP2)|BIT(FMT_VOP3A),11},
  {_("v_mul_hi_u32_u24"),BIT(FMT_VOP2)|BIT(FMT_VOP3A),12},
  {_("v_min_legacy_f32"),BIT(FMT_VOP2)|BIT(FMT_VOP3A),13},
  {_("v_max_legacy_f32"),BIT(FMT_VOP2)|BIT(FMT_VOP3A),14},
  {_("v_min_f32"),BIT(FMT_VOP2)|BIT(FMT_VOP3A),15},
  {_("v_max_f32"),BIT(FMT_VOP2)|BIT(FMT_VOP3A),16},
  {_("v_min_i32"),BIT(FMT_VOP2)|BIT(FMT_VOP3A),17},
  {_("v_max_i32"),BIT(FMT_VOP2)|BIT(FMT_VOP3A),18},
  {_("v_min_u32"),BIT(FMT_VOP2)|BIT(FMT_VOP3A),19},
  {_("v_max_u32"),BIT(FMT_VOP2)|BIT(FMT_VOP3A),20},
  {_("v_lshr_b32"),BIT(FMT_VOP2)|BIT(FMT_VOP3A),21},
  {_("v_lshrrev_b32"),BIT(FMT_VOP2)|BIT(FMT_VOP3A),22},
  {_("v_ashr_i32"),BIT(FMT_VOP2)|BIT(FMT_VOP3A),23},
  {_("v_ashrrev_i32"),BIT(FMT_VOP2)|BIT(FMT_VOP3A),24},
  {_("v_lshlrev_b32"),BIT(FMT_VOP2)|BIT(FMT_VOP3A),26},
  {_("v_and_b32"),BIT(FMT_VOP2)|BIT(FMT_VOP3A),27},
  {_("v_or_b32"),BIT(FMT_VOP2)|BIT(FMT_VOP3A),28},
  {_("v_xor_b32"),BIT(FMT_VOP2)|BIT(FMT_VOP3A),29},
  {_("v_bfm_b32"),BIT(FMT_VOP2)|BIT(FMT_VOP3A),30},
  {_("v_mac_f32"),BIT(FMT_VOP2)|BIT(FMT_VOP3A),31},
  {_("v_madmk_f32"),BIT(FMT_VOP2)|BIT(FMT_VOP3A),32},
  {_("v_madak_f32"),BIT(FMT_VOP2)|BIT(FMT_VOP3A),33},
  {_("v_bcnt_u32_b32"),BIT(FMT_VOP2)|BIT(FMT_VOP3A),34},
  {_("v_mbcnt_lo_u32_b32"),BIT(FMT_VOP2)|BIT(FMT_VOP3A),35},
  {_("v_mbcnt_hi_u32_b32"),BIT(FMT_VOP2)|BIT(FMT_VOP3A),36},
  {_("v_ldexp_f32"),BIT(FMT_VOP2)|BIT(FMT_VOP3A),43},
  {_("v_cvt_pkaccum_u8_f32"),BIT(FMT_VOP2)|BIT(FMT_VOP3A),44},
  {_("v_cvt_pknorm_i16_f32"),BIT(FMT_VOP2)|BIT(FMT_VOP3A),45},
  {_("v_cvt_pknorm_u16_f32"),BIT(FMT_VOP2)|BIT(FMT_VOP3A),46},
  {_("v_cvt_pkrtz_f16_f32"),BIT(FMT_VOP2)|BIT(FMT_VOP3A),47},
  {_("v_cvt_pk_u16_u32"),BIT(FMT_VOP2)|BIT(FMT_VOP3A),48},
  {_("v_cvt_pk_i16_i32"),BIT(FMT_VOP2)|BIT(FMT_VOP3A),49},
  //----------------------------------------------------------------------------
  {_("v_add_i32"),BIT(FMT_VOP2)|BIT(FMT_VOP3A)|BIT(FMT_VOP3B),37},
  {_("v_sub_i32"),BIT(FMT_VOP2)|BIT(FMT_VOP3A)|BIT(FMT_VOP3B),38},
  {_("v_subrev_i32"),BIT(FMT_VOP2)|BIT(FMT_VOP3A)|BIT(FMT_VOP3B),39},
  {_("v_addc_u32"),BIT(FMT_VOP2)|BIT(FMT_VOP3A)|BIT(FMT_VOP3B),40},
  {_("v_subb_u32"),BIT(FMT_VOP2)|BIT(FMT_VOP3A)|BIT(FMT_VOP3B),41},
  {_("v_subbrev_u32"),BIT(FMT_VOP2)|BIT(FMT_VOP3A)|BIT(FMT_VOP3B),42},
  //----------------------------------------------------------------------------
  {_("v_nop"),BIT(FMT_VOP1)|BIT(FMT_VOP3A),0},
  {_("v_mov_b32"),BIT(FMT_VOP1)|BIT(FMT_VOP3A),1},
  {_("v_readfirstlane_b32"),BIT(FMT_VOP1)|BIT(FMT_VOP3A),2},
  {_("v_cvt_i32_f64"),BIT(FMT_VOP1)|BIT(FMT_VOP3A),3},
  {_("v_cvt_f64_i32"),BIT(FMT_VOP1)|BIT(FMT_VOP3A),4},
  {_("v_cvt_f32_i32"),BIT(FMT_VOP1)|BIT(FMT_VOP3A),5},
  {_("v_cvt_f32_u32"),BIT(FMT_VOP1)|BIT(FMT_VOP3A),6},
  {_("v_cvt_u32_f32"),BIT(FMT_VOP1)|BIT(FMT_VOP3A),7},
  {_("v_cvt_i32_f32"),BIT(FMT_VOP1)|BIT(FMT_VOP3A),8},
  {_("v_mov_fed_b32"),BIT(FMT_VOP1)|BIT(FMT_VOP3A),9},
  {_("v_cvt_f16_f32"),BIT(FMT_VOP1)|BIT(FMT_VOP3A),10},
  {_("v_cvt_f32_f16"),BIT(FMT_VOP1)|BIT(FMT_VOP3A),11},
  {_("v_cvt_rpi_i32_f32"),BIT(FMT_VOP1)|BIT(FMT_VOP3A),12},
  {_("v_cvt_flr_i32_f32"),BIT(FMT_VOP1)|BIT(FMT_VOP3A),13},
  {_("v_cvt_off_f32_i4"),BIT(FMT_VOP1)|BIT(FMT_VOP3A),14},
  {_("v_cvt_f32_f64"),BIT(FMT_VOP1)|BIT(FMT_VOP3A),15},
  {_("v_cvt_f64_f32"),BIT(FMT_VOP1)|BIT(FMT_VOP3A),16},
  {_("v_cvt_f32_ubyte0"),BIT(FMT_VOP1)|BIT(FMT_VOP3A),17},
  {_("v_cvt_f32_ubyte1"),BIT(FMT_VOP1)|BIT(FMT_VOP3A),18},
  {_("v_cvt_f32_ubyte2"),BIT(FMT_VOP1)|BIT(FMT_VOP3A),19},
  {_("v_cvt_f32_ubyte3"),BIT(FMT_VOP1)|BIT(FMT_VOP3A),20},
  {_("v_cvt_u32_f64"),BIT(FMT_VOP1)|BIT(FMT_VOP3A),21},
  {_("v_cvt_f64_u32"),BIT(FMT_VOP1)|BIT(FMT_VOP3A),22},
  {_("v_fract_f32"),BIT(FMT_VOP1)|BIT(FMT_VOP3A),32},
  {_("v_trunc_f32"),BIT(FMT_VOP1)|BIT(FMT_VOP3A),33},
  {_("v_ceil_f32"),BIT(FMT_VOP1)|BIT(FMT_VOP3A),34},
  {_("v_rndne_f32"),BIT(FMT_VOP1)|BIT(FMT_VOP3A),35},
  {_("v_floor_f32"),BIT(FMT_VOP1)|BIT(FMT_VOP3A),36},
  {_("v_exp_f32"),BIT(FMT_VOP1)|BIT(FMT_VOP3A),37},
  {_("v_log_clamp_f32"),BIT(FMT_VOP1)|BIT(FMT_VOP3A),38},
  {_("v_log_f32"),BIT(FMT_VOP1)|BIT(FMT_VOP3A),39},
  {_("v_rcp_clamp_f32"),BIT(FMT_VOP1)|BIT(FMT_VOP3A),40},
  {_("v_rcp_legacy_f32"),BIT(FMT_VOP1)|BIT(FMT_VOP3A),41},
  {_("v_rcp_f32"),BIT(FMT_VOP1)|BIT(FMT_VOP3A),42},
  {_("v_rcp_iflag_f32"),BIT(FMT_VOP1)|BIT(FMT_VOP3A),43},
  {_("v_rsq_clamp_f32"),BIT(FMT_VOP1)|BIT(FMT_VOP3A),44},
  {_("v_rsq_legacy_f32"),BIT(FMT_VOP1)|BIT(FMT_VOP3A),45},
  {_("v_rsq_f32"),BIT(FMT_VOP1)|BIT(FMT_VOP3A),46},
  {_("v_rcp_f64"),BIT(FMT_VOP1)|BIT(FMT_VOP3A),47},
  {_("v_rcp_clamp_f64"),BIT(FMT_VOP1)|BIT(FMT_VOP3A),48},
  {_("v_rsq_f64"),BIT(FMT_VOP1)|BIT(FMT_VOP3A),49},
  {_("v_rsq_clamp_f64"),BIT(FMT_VOP1)|BIT(FMT_VOP3A),50},
  {_("v_sqrt_f32"),BIT(FMT_VOP1)|BIT(FMT_VOP3A),51},
  {_("v_sqrt_f64"),BIT(FMT_VOP1)|BIT(FMT_VOP3A),52},
  {_("v_sin_f32"),BIT(FMT_VOP1)|BIT(FMT_VOP3A),53},
  {_("v_cos_f32"),BIT(FMT_VOP1)|BIT(FMT_VOP3A),54},
  {_("v_not_b32"),BIT(FMT_VOP1)|BIT(FMT_VOP3A),55},
  {_("v_bfrev_b32"),BIT(FMT_VOP1)|BIT(FMT_VOP3A),56},
  {_("v_ffbh_u32"),BIT(FMT_VOP1)|BIT(FMT_VOP3A),57},
  {_("v_ffbl_b32"),BIT(FMT_VOP1)|BIT(FMT_VOP3A),58},
  {_("v_ffbh_i32"),BIT(FMT_VOP1)|BIT(FMT_VOP3A),59},
  {_("v_frexp_exp_i32_f64"),BIT(FMT_VOP1)|BIT(FMT_VOP3A),60},
  {_("v_frexp_mant_f64"),BIT(FMT_VOP1)|BIT(FMT_VOP3A),61},
  {_("v_fract_f64"),BIT(FMT_VOP1)|BIT(FMT_VOP3A),62},
  {_("v_frexp_exp_i32_f32"),BIT(FMT_VOP1)|BIT(FMT_VOP3A),63},
  {_("v_frexp_mant_f32"),BIT(FMT_VOP1)|BIT(FMT_VOP3A),64},
  {_("v_clrexcp"),BIT(FMT_VOP1)|BIT(FMT_VOP3A),65},
  {_("v_movreld_b32"),BIT(FMT_VOP1)|BIT(FMT_VOP3A),66},
  {_("v_movrels_b32"),BIT(FMT_VOP1)|BIT(FMT_VOP3A),67},
  {_("v_movrelsd_b32"),BIT(FMT_VOP1)|BIT(FMT_VOP3A),68},
  //----------------------------------------------------------------------------
  {_("v_cmp_f_f32"),BIT(FMT_VOPC)|BIT(FMT_VOP3A),0x00},
  {_("v_cmp_lt_f32"),BIT(FMT_VOPC)|BIT(FMT_VOP3A),0x01},
  {_("v_cmp_eq_f32"),BIT(FMT_VOPC)|BIT(FMT_VOP3A),0x02},
  {_("v_cmp_le_f32"),BIT(FMT_VOPC)|BIT(FMT_VOP3A),0x03},
  {_("v_cmp_gt_f32"),BIT(FMT_VOPC)|BIT(FMT_VOP3A),0x04},
  {_("v_cmp_lg_f32"),BIT(FMT_VOPC)|BIT(FMT_VOP3A),0x05},
  {_("v_cmp_ge_f32"),BIT(FMT_VOPC)|BIT(FMT_VOP3A),0x06},
  {_("v_cmp_o_f32"),BIT(FMT_VOPC)|BIT(FMT_VOP3A),0x07},
  {_("v_cmp_u_f32"),BIT(FMT_VOPC)|BIT(FMT_VOP3A),0x08},
  {_("v_cmp_nge_f32"),BIT(FMT_VOPC)|BIT(FMT_VOP3A),0x09},
  {_("v_cmp_nlg_f32"),BIT(FMT_VOPC)|BIT(FMT_VOP3A),0x0a},
  {_("v_cmp_ngt_f32"),BIT(FMT_VOPC)|BIT(FMT_VOP3A),0x0b},
  {_("v_cmp_nle_f32"),BIT(FMT_VOPC)|BIT(FMT_VOP3A),0x0c},
  {_("v_cmp_neq_f32"),BIT(FMT_VOPC)|BIT(FMT_VOP3A),0x0d},
  {_("v_cmp_nlt_f32"),BIT(FMT_VOPC)|BIT(FMT_VOP3A),0x0e},
  {_("v_cmp_tru_f32"),BIT(FMT_VOPC)|BIT(FMT_VOP3A),0x0f},
  {_("v_cmpx_f_f32"),BIT(FMT_VOPC)|BIT(FMT_VOP3A),0x10},
  {_("v_cmpx_lt_f32"),BIT(FMT_VOPC)|BIT(FMT_VOP3A),0x11},
  {_("v_cmpx_eq_f32"),BIT(FMT_VOPC)|BIT(FMT_VOP3A),0x12},
  {_("v_cmpx_le_f32"),BIT(FMT_VOPC)|BIT(FMT_VOP3A),0x13},
  {_("v_cmpx_gt_f32"),BIT(FMT_VOPC)|BIT(FMT_VOP3A),0x14},
  {_("v_cmpx_lg_f32"),BIT(FMT_VOPC)|BIT(FMT_VOP3A),0x15},
  {_("v_cmpx_ge_f32"),BIT(FMT_VOPC)|BIT(FMT_VOP3A),0x16},
  {_("v_cmpx_o_f32"),BIT(FMT_VOPC)|BIT(FMT_VOP3A),0x17},
  {_("v_cmpx_u_f32"),BIT(FMT_VOPC)|BIT(FMT_VOP3A),0x18},
  {_("v_cmpx_nge_f32"),BIT(FMT_VOPC)|BIT(FMT_VOP3A),0x19},
  {_("v_cmpx_nlg_f32"),BIT(FMT_VOPC)|BIT(FMT_VOP3A),0x1a},
  {_("v_cmpx_ngt_f32"),BIT(FMT_VOPC)|BIT(FMT_VOP3A),0x1b},
  {_("v_cmpx_nle_f32"),BIT(FMT_VOPC)|BIT(FMT_VOP3A),0x1c},
  {_("v_cmpx_neq_f32"),BIT(FMT_VOPC)|BIT(FMT_VOP3A),0x1d},
  {_("v_cmpx_nlt_f32"),BIT(FMT_VOPC)|BIT(FMT_VOP3A),0x1e},
  {_("v_cmpx_tru_f32"),BIT(FMT_VOPC)|BIT(FMT_VOP3A),0x1f},
  {_("v_cmp_f_f64"),BIT(FMT_VOPC)|BIT(FMT_VOP3A),0x20},
  {_("v_cmp_lt_f64"),BIT(FMT_VOPC)|BIT(FMT_VOP3A),0x21},
  {_("v_cmp_eq_f64"),BIT(FMT_VOPC)|BIT(FMT_VOP3A),0x22},
  {_("v_cmp_le_f64"),BIT(FMT_VOPC)|BIT(FMT_VOP3A),0x23},
  {_("v_cmp_gt_f64"),BIT(FMT_VOPC)|BIT(FMT_VOP3A),0x24},
  {_("v_cmp_lg_f64"),BIT(FMT_VOPC)|BIT(FMT_VOP3A),0x25},
  {_("v_cmp_ge_f64"),BIT(FMT_VOPC)|BIT(FMT_VOP3A),0x26},
  {_("v_cmp_o_f64"),BIT(FMT_VOPC)|BIT(FMT_VOP3A),0x27},
  {_("v_cmp_u_f64"),BIT(FMT_VOPC)|BIT(FMT_VOP3A),0x28},
  {_("v_cmp_nge_f64"),BIT(FMT_VOPC)|BIT(FMT_VOP3A),0x29},
  {_("v_cmp_nlg_f64"),BIT(FMT_VOPC)|BIT(FMT_VOP3A),0x2a},
  {_("v_cmp_ngt_f64"),BIT(FMT_VOPC)|BIT(FMT_VOP3A),0x2b},
  {_("v_cmp_nle_f64"),BIT(FMT_VOPC)|BIT(FMT_VOP3A),0x2c},
  {_("v_cmp_neq_f64"),BIT(FMT_VOPC)|BIT(FMT_VOP3A),0x2d},
  {_("v_cmp_nlt_f64"),BIT(FMT_VOPC)|BIT(FMT_VOP3A),0x2e},
  {_("v_cmp_tru_f64"),BIT(FMT_VOPC)|BIT(FMT_VOP3A),0x2f},
  {_("v_cmpx_f_f64"),BIT(FMT_VOPC)|BIT(FMT_VOP3A),0x30},
  {_("v_cmpx_lt_f64"),BIT(FMT_VOPC)|BIT(FMT_VOP3A),0x31},
  {_("v_cmpx_eq_f64"),BIT(FMT_VOPC)|BIT(FMT_VOP3A),0x32},
  {_("v_cmpx_le_f64"),BIT(FMT_VOPC)|BIT(FMT_VOP3A),0x33},
  {_("v_cmpx_gt_f64"),BIT(FMT_VOPC)|BIT(FMT_VOP3A),0x34},
  {_("v_cmpx_lg_f64"),BIT(FMT_VOPC)|BIT(FMT_VOP3A),0x35},
  {_("v_cmpx_ge_f64"),BIT(FMT_VOPC)|BIT(FMT_VOP3A),0x36},
  {_("v_cmpx_o_f64"),BIT(FMT_VOPC)|BIT(FMT_VOP3A),0x37},
  {_("v_cmpx_u_f64"),BIT(FMT_VOPC)|BIT(FMT_VOP3A),0x38},
  {_("v_cmpx_nge_f64"),BIT(FMT_VOPC)|BIT(FMT_VOP3A),0x39},
  {_("v_cmpx_nlg_f64"),BIT(FMT_VOPC)|BIT(FMT_VOP3A),0x3a},
  {_("v_cmpx_ngt_f64"),BIT(FMT_VOPC)|BIT(FMT_VOP3A),0x3b},
  {_("v_cmpx_nle_f64"),BIT(FMT_VOPC)|BIT(FMT_VOP3A),0x3c},
  {_("v_cmpx_neq_f64"),BIT(FMT_VOPC)|BIT(FMT_VOP3A),0x3d},
  {_("v_cmpx_nlt_f64"),BIT(FMT_VOPC)|BIT(FMT_VOP3A),0x3e},
  {_("v_cmpx_tru_f64"),BIT(FMT_VOPC)|BIT(FMT_VOP3A),0x3f},
  {_("v_cmps_f_f32"),BIT(FMT_VOPC)|BIT(FMT_VOP3A),0x40},
  {_("v_cmps_lt_f32"),BIT(FMT_VOPC)|BIT(FMT_VOP3A),0x41},
  {_("v_cmps_eq_f32"),BIT(FMT_VOPC)|BIT(FMT_VOP3A),0x42},
  {_("v_cmps_le_f32"),BIT(FMT_VOPC)|BIT(FMT_VOP3A),0x43},
  {_("v_cmps_gt_f32"),BIT(FMT_VOPC)|BIT(FMT_VOP3A),0x44},
  {_("v_cmps_lg_f32"),BIT(FMT_VOPC)|BIT(FMT_VOP3A),0x45},
  {_("v_cmps_ge_f32"),BIT(FMT_VOPC)|BIT(FMT_VOP3A),0x46},
  {_("v_cmps_o_f32"),BIT(FMT_VOPC)|BIT(FMT_VOP3A),0x47},
  {_("v_cmps_u_f32"),BIT(FMT_VOPC)|BIT(FMT_VOP3A),0x48},
  {_("v_cmps_nge_f32"),BIT(FMT_VOPC)|BIT(FMT_VOP3A),0x49},
  {_("v_cmps_nlg_f32"),BIT(FMT_VOPC)|BIT(FMT_VOP3A),0x4a},
  {_("v_cmps_ngt_f32"),BIT(FMT_VOPC)|BIT(FMT_VOP3A),0x4b},
  {_("v_cmps_nle_f32"),BIT(FMT_VOPC)|BIT(FMT_VOP3A),0x4c},
  {_("v_cmps_neq_f32"),BIT(FMT_VOPC)|BIT(FMT_VOP3A),0x4d},
  {_("v_cmps_nlt_f32"),BIT(FMT_VOPC)|BIT(FMT_VOP3A),0x4e},
  {_("v_cmps_tru_f32"),BIT(FMT_VOPC)|BIT(FMT_VOP3A),0x4f},
  {_("v_cmpsx_f_f32"),BIT(FMT_VOPC)|BIT(FMT_VOP3A),0x50},
  {_("v_cmpsx_lt_f32"),BIT(FMT_VOPC)|BIT(FMT_VOP3A),0x51},
  {_("v_cmpsx_eq_f32"),BIT(FMT_VOPC)|BIT(FMT_VOP3A),0x52},
  {_("v_cmpsx_le_f32"),BIT(FMT_VOPC)|BIT(FMT_VOP3A),0x53},
  {_("v_cmpsx_gt_f32"),BIT(FMT_VOPC)|BIT(FMT_VOP3A),0x54},
  {_("v_cmpsx_lg_f32"),BIT(FMT_VOPC)|BIT(FMT_VOP3A),0x55},
  {_("v_cmpsx_ge_f32"),BIT(FMT_VOPC)|BIT(FMT_VOP3A),0x56},
  {_("v_cmpsx_o_f32"),BIT(FMT_VOPC)|BIT(FMT_VOP3A),0x57},
  {_("v_cmpsx_u_f32"),BIT(FMT_VOPC)|BIT(FMT_VOP3A),0x58},
  {_("v_cmpsx_nge_f32"),BIT(FMT_VOPC)|BIT(FMT_VOP3A),0x59},
  {_("v_cmpsx_nlg_f32"),BIT(FMT_VOPC)|BIT(FMT_VOP3A),0x5a},
  {_("v_cmpsx_ngt_f32"),BIT(FMT_VOPC)|BIT(FMT_VOP3A),0x5b},
  {_("v_cmpsx_nle_f32"),BIT(FMT_VOPC)|BIT(FMT_VOP3A),0x5c},
  {_("v_cmpsx_neq_f32"),BIT(FMT_VOPC)|BIT(FMT_VOP3A),0x5d},
  {_("v_cmpsx_nlt_f32"),BIT(FMT_VOPC)|BIT(FMT_VOP3A),0x5e},
  {_("v_cmpsx_tru_f32"),BIT(FMT_VOPC)|BIT(FMT_VOP3A),0x5f},
  {_("v_cmps_f_f64"),BIT(FMT_VOPC)|BIT(FMT_VOP3A),0x60},
  {_("v_cmps_lt_f64"),BIT(FMT_VOPC)|BIT(FMT_VOP3A),0x61},
  {_("v_cmps_eq_f64"),BIT(FMT_VOPC)|BIT(FMT_VOP3A),0x62},
  {_("v_cmps_le_f64"),BIT(FMT_VOPC)|BIT(FMT_VOP3A),0x63},
  {_("v_cmps_gt_f64"),BIT(FMT_VOPC)|BIT(FMT_VOP3A),0x64},
  {_("v_cmps_lg_f64"),BIT(FMT_VOPC)|BIT(FMT_VOP3A),0x65},
  {_("v_cmps_ge_f64"),BIT(FMT_VOPC)|BIT(FMT_VOP3A),0x66},
  {_("v_cmps_o_f64"),BIT(FMT_VOPC)|BIT(FMT_VOP3A),0x67},
  {_("v_cmps_u_f64"),BIT(FMT_VOPC)|BIT(FMT_VOP3A),0x68},
  {_("v_cmps_nge_f64"),BIT(FMT_VOPC)|BIT(FMT_VOP3A),0x69},
  {_("v_cmps_nlg_f64"),BIT(FMT_VOPC)|BIT(FMT_VOP3A),0x6a},
  {_("v_cmps_ngt_f64"),BIT(FMT_VOPC)|BIT(FMT_VOP3A),0x6b},
  {_("v_cmps_nle_f64"),BIT(FMT_VOPC)|BIT(FMT_VOP3A),0x6c},
  {_("v_cmps_neq_f64"),BIT(FMT_VOPC)|BIT(FMT_VOP3A),0x6d},
  {_("v_cmps_nlt_f64"),BIT(FMT_VOPC)|BIT(FMT_VOP3A),0x6e},
  {_("v_cmps_tru_f64"),BIT(FMT_VOPC)|BIT(FMT_VOP3A),0x6f},
  {_("v_cmpsx_f_f64"),BIT(FMT_VOPC)|BIT(FMT_VOP3A),0x70},
  {_("v_cmpsx_lt_f64"),BIT(FMT_VOPC)|BIT(FMT_VOP3A),0x71},
  {_("v_cmpsx_eq_f64"),BIT(FMT_VOPC)|BIT(FMT_VOP3A),0x72},
  {_("v_cmpsx_le_f64"),BIT(FMT_VOPC)|BIT(FMT_VOP3A),0x73},
  {_("v_cmpsx_gt_f64"),BIT(FMT_VOPC)|BIT(FMT_VOP3A),0x74},
  {_("v_cmpsx_lg_f64"),BIT(FMT_VOPC)|BIT(FMT_VOP3A),0x75},
  {_("v_cmpsx_ge_f64"),BIT(FMT_VOPC)|BIT(FMT_VOP3A),0x76},
  {_("v_cmpsx_o_f64"),BIT(FMT_VOPC)|BIT(FMT_VOP3A),0x77},
  {_("v_cmpsx_u_f64"),BIT(FMT_VOPC)|BIT(FMT_VOP3A),0x78},
  {_("v_cmpsx_nge_f64"),BIT(FMT_VOPC)|BIT(FMT_VOP3A),0x79},
  {_("v_cmpsx_nlg_f64"),BIT(FMT_VOPC)|BIT(FMT_VOP3A),0x7a},
  {_("v_cmpsx_ngt_f64"),BIT(FMT_VOPC)|BIT(FMT_VOP3A),0x7b},
  {_("v_cmpsx_nle_f64"),BIT(FMT_VOPC)|BIT(FMT_VOP3A),0x7c},
  {_("v_cmpsx_neq_f64"),BIT(FMT_VOPC)|BIT(FMT_VOP3A),0x7d},
  {_("v_cmpsx_nlt_f64"),BIT(FMT_VOPC)|BIT(FMT_VOP3A),0x7e},
  {_("v_cmpsx_tru_f64"),BIT(FMT_VOPC)|BIT(FMT_VOP3A),0x7f},
  {_("v_cmp_f_i32"),BIT(FMT_VOPC)|BIT(FMT_VOP3A),0x80},
  {_("v_cmp_lt_i32"),BIT(FMT_VOPC)|BIT(FMT_VOP3A),0x81},
  {_("v_cmp_eq_i32"),BIT(FMT_VOPC)|BIT(FMT_VOP3A),0x82},
  {_("v_cmp_le_i32"),BIT(FMT_VOPC)|BIT(FMT_VOP3A),0x83},
  {_("v_cmp_gt_i32"),BIT(FMT_VOPC)|BIT(FMT_VOP3A),0x84},
  {_("v_cmp_lg_i32"),BIT(FMT_VOPC)|BIT(FMT_VOP3A),0x85},
  {_("v_cmp_ge_i32"),BIT(FMT_VOPC)|BIT(FMT_VOP3A),0x86},
  {_("v_cmp_tru_i32"),BIT(FMT_VOPC)|BIT(FMT_VOP3A),0x87},
  {_("v_cmp_class_f32"),BIT(FMT_VOPC)|BIT(FMT_VOP3A),0x88},
  {_("v_cmpx_f_i32"),BIT(FMT_VOPC)|BIT(FMT_VOP3A),0x90},
  {_("v_cmpx_lt_i32"),BIT(FMT_VOPC)|BIT(FMT_VOP3A),0x91},
  {_("v_cmpx_eq_i32"),BIT(FMT_VOPC)|BIT(FMT_VOP3A),0x92},
  {_("v_cmpx_le_i32"),BIT(FMT_VOPC)|BIT(FMT_VOP3A),0x93},
  {_("v_cmpx_gt_i32"),BIT(FMT_VOPC)|BIT(FMT_VOP3A),0x94},
  {_("v_cmpx_lg_i32"),BIT(FMT_VOPC)|BIT(FMT_VOP3A),0x95},
  {_("v_cmpx_ge_i32"),BIT(FMT_VOPC)|BIT(FMT_VOP3A),0x96},
  {_("v_cmpx_tru_i32"),BIT(FMT_VOPC)|BIT(FMT_VOP3A),0x97},
  {_("v_cmpx_class_f32"),BIT(FMT_VOPC)|BIT(FMT_VOP3A),0x98},
  {_("v_cmp_f_i64"),BIT(FMT_VOPC)|BIT(FMT_VOP3A),0xa0},
  {_("v_cmp_lt_i64"),BIT(FMT_VOPC)|BIT(FMT_VOP3A),0xa1},
  {_("v_cmp_eq_i64"),BIT(FMT_VOPC)|BIT(FMT_VOP3A),0xa2},
  {_("v_cmp_le_i64"),BIT(FMT_VOPC)|BIT(FMT_VOP3A),0xa3},
  {_("v_cmp_gt_i64"),BIT(FMT_VOPC)|BIT(FMT_VOP3A),0xa4},
  {_("v_cmp_lg_i64"),BIT(FMT_VOPC)|BIT(FMT_VOP3A),0xa5},
  {_("v_cmp_ge_i64"),BIT(FMT_VOPC)|BIT(FMT_VOP3A),0xa6},
  {_("v_cmp_tru_i64"),BIT(FMT_VOPC)|BIT(FMT_VOP3A),0xa7},
  {_("v_cmp_class_f64"),BIT(FMT_VOPC)|BIT(FMT_VOP3A),0xa8},
  {_("v_cmpx_f_i64"),BIT(FMT_VOPC)|BIT(FMT_VOP3A),0xb0},
  {_("v_cmpx_lt_i64"),BIT(FMT_VOPC)|BIT(FMT_VOP3A),0xb1},
  {_("v_cmpx_eq_i64"),BIT(FMT_VOPC)|BIT(FMT_VOP3A),0xb2},
  {_("v_cmpx_le_i64"),BIT(FMT_VOPC)|BIT(FMT_VOP3A),0xb3},
  {_("v_cmpx_gt_i64"),BIT(FMT_VOPC)|BIT(FMT_VOP3A),0xb4},
  {_("v_cmpx_lg_i64"),BIT(FMT_VOPC)|BIT(FMT_VOP3A),0xb5},
  {_("v_cmpx_ge_i64"),BIT(FMT_VOPC)|BIT(FMT_VOP3A),0xb6},
  {_("v_cmpx_tru_i64"),BIT(FMT_VOPC)|BIT(FMT_VOP3A),0xb7},
  {_("v_cmpx_class_f64"),BIT(FMT_VOPC)|BIT(FMT_VOP3A),0xb8},
  {_("v_cmp_f_u32"),BIT(FMT_VOPC)|BIT(FMT_VOP3A),0xc0},
  {_("v_cmp_lt_u32"),BIT(FMT_VOPC)|BIT(FMT_VOP3A),0xc1},
  {_("v_cmp_eq_u32"),BIT(FMT_VOPC)|BIT(FMT_VOP3A),0xc2},
  {_("v_cmp_le_u32"),BIT(FMT_VOPC)|BIT(FMT_VOP3A),0xc3},
  {_("v_cmp_gt_u32"),BIT(FMT_VOPC)|BIT(FMT_VOP3A),0xc4},
  {_("v_cmp_lg_u32"),BIT(FMT_VOPC)|BIT(FMT_VOP3A),0xc5},
  {_("v_cmp_ge_u32"),BIT(FMT_VOPC)|BIT(FMT_VOP3A),0xc6},
  {_("v_cmp_tru_u32"),BIT(FMT_VOPC)|BIT(FMT_VOP3A),0xc7},
  {_("v_cmpx_f_u32"),BIT(FMT_VOPC)|BIT(FMT_VOP3A),0xd0},
  {_("v_cmpx_lt_u32"),BIT(FMT_VOPC)|BIT(FMT_VOP3A),0xd1},
  {_("v_cmpx_eq_u32"),BIT(FMT_VOPC)|BIT(FMT_VOP3A),0xd2},
  {_("v_cmpx_le_u32"),BIT(FMT_VOPC)|BIT(FMT_VOP3A),0xd3},
  {_("v_cmpx_gt_u32"),BIT(FMT_VOPC)|BIT(FMT_VOP3A),0xd4},
  {_("v_cmpx_lg_u32"),BIT(FMT_VOPC)|BIT(FMT_VOP3A),0xd5},
  {_("v_cmpx_ge_u32"),BIT(FMT_VOPC)|BIT(FMT_VOP3A),0xd6},
  {_("v_cmpx_tru_u32"),BIT(FMT_VOPC)|BIT(FMT_VOP3A),0xd7},
  {_("v_cmp_f_u64"),BIT(FMT_VOPC)|BIT(FMT_VOP3A),0xe0},
  {_("v_cmp_lt_u64"),BIT(FMT_VOPC)|BIT(FMT_VOP3A),0xe1},
  {_("v_cmp_eq_u64"),BIT(FMT_VOPC)|BIT(FMT_VOP3A),0xe2},
  {_("v_cmp_le_u64"),BIT(FMT_VOPC)|BIT(FMT_VOP3A),0xe3},
  {_("v_cmp_gt_u64"),BIT(FMT_VOPC)|BIT(FMT_VOP3A),0xe4},
  {_("v_cmp_lg_u64"),BIT(FMT_VOPC)|BIT(FMT_VOP3A),0xe5},
  {_("v_cmp_ge_u64"),BIT(FMT_VOPC)|BIT(FMT_VOP3A),0xe6},
  {_("v_cmp_tru_u64"),BIT(FMT_VOPC)|BIT(FMT_VOP3A),0xe7},
  {_("v_cmpx_f_u64"),BIT(FMT_VOPC)|BIT(FMT_VOP3A),0xf0},
  {_("v_cmpx_lt_u64"),BIT(FMT_VOPC)|BIT(FMT_VOP3A),0xf1},
  {_("v_cmpx_eq_u64"),BIT(FMT_VOPC)|BIT(FMT_VOP3A),0xf2},
  {_("v_cmpx_le_u64"),BIT(FMT_VOPC)|BIT(FMT_VOP3A),0xf3},
  {_("v_cmpx_gt_u64"),BIT(FMT_VOPC)|BIT(FMT_VOP3A),0xf4},
  {_("v_cmpx_lg_u64"),BIT(FMT_VOPC)|BIT(FMT_VOP3A),0xf5},
  {_("v_cmpx_ge_u64"),BIT(FMT_VOPC)|BIT(FMT_VOP3A),0xf6},
  {_("v_cmpx_tru_u64"),BIT(FMT_VOPC)|BIT(FMT_VOP3A),0xf7},
  //----------------------------------------------------------------------------
  {_("v_mad_legacy_f32"),BIT(FMT_VOP3A),320},
  {_("v_mad_f32"),BIT(FMT_VOP3A),321},
  {_("v_mad_i32_i24"),BIT(FMT_VOP3A),322},
  {_("v_mad_u32_u24"),BIT(FMT_VOP3A),323},
  {_("v_cubeid_f32"),BIT(FMT_VOP3A),324},
  {_("v_cubesc_f32"),BIT(FMT_VOP3A),325},
  {_("v_cubetc_f32"),BIT(FMT_VOP3A),326},
  {_("v_cubema_f32"),BIT(FMT_VOP3A),327},
  {_("v_bfe_u32"),BIT(FMT_VOP3A),328},
  {_("v_bfe_i32"),BIT(FMT_VOP3A),329},
  {_("v_bfi_b32"),BIT(FMT_VOP3A),330},
  {_("v_fma_f32"),BIT(FMT_VOP3A),331},
  {_("v_fma_f64"),BIT(FMT_VOP3A),332},
  {_("v_lerp_u8"),BIT(FMT_VOP3A),333},
  {_("v_alignbit_b32"),BIT(FMT_VOP3A),334},
  {_("v_alignbyte_b32"),BIT(FMT_VOP3A),335},
  {_("v_mullit_f32"),BIT(FMT_VOP3A),336},
  {_("v_min3_f32"),BIT(FMT_VOP3A),337},
  {_("v_min3_i32"),BIT(FMT_VOP3A),338},
  {_("v_min3_u32"),BIT(FMT_VOP3A),339},
  {_("v_max3_f32"),BIT(FMT_VOP3A),340},
  {_("v_max3_i32"),BIT(FMT_VOP3A),341},
  {_("v_max3_u32"),BIT(FMT_VOP3A),342},
  {_("v_med3_f32"),BIT(FMT_VOP3A),343},
  {_("v_med3_i32"),BIT(FMT_VOP3A),344},
  {_("v_med3_u32"),BIT(FMT_VOP3A),345},
  {_("v_sad_u8"),BIT(FMT_VOP3A),346},
  {_("v_sad_hi_u8"),BIT(FMT_VOP3A),347},
  {_("v_sad_u16"),BIT(FMT_VOP3A),348},
  {_("v_sad_u32"),BIT(FMT_VOP3A),349},
  {_("v_cvt_pk_u8_f32"),BIT(FMT_VOP3A),350},
  {_("v_div_fixup_f32"),BIT(FMT_VOP3A),351},
  {_("v_div_fixup_f64"),BIT(FMT_VOP3A),352},
  {_("v_lshl_b64"),BIT(FMT_VOP3A),353},
  {_("v_lshr_b64"),BIT(FMT_VOP3A),354},
  {_("v_ashr_i64"),BIT(FMT_VOP3A),355},
  {_("v_add_f64"),BIT(FMT_VOP3A),356},
  {_("v_mul_f64"),BIT(FMT_VOP3A),357},
  {_("v_min_f64"),BIT(FMT_VOP3A),358},
  {_("v_max_f64"),BIT(FMT_VOP3A),359},
  {_("v_ldexp_f64"),BIT(FMT_VOP3A),360},
  {_("v_mul_lo_u32"),BIT(FMT_VOP3A),361},
  {_("v_mul_hi_u32"),BIT(FMT_VOP3A),362},
  {_("v_mul_lo_i32"),BIT(FMT_VOP3A),363},
  {_("v_mul_hi_i32"),BIT(FMT_VOP3A),364},
  {_("v_vdiv_fmas_f32"),BIT(FMT_VOP3A),367},
  {_("v_vdiv_fmas_f64"),BIT(FMT_VOP3A),368},
  {_("v_msad_u8"),BIT(FMT_VOP3A),369},
  {_("v_qsad_u8"),BIT(FMT_VOP3A),370},
  {_("v_mqsad_u8"),BIT(FMT_VOP3A),371},
  {_("v_trig_preop_f64"),BIT(FMT_VOP3A),372},
  //----------------------------------------------------------------------------
  {_("v_div_scale_f32"),BIT(FMT_VOP3A)|BIT(FMT_VOP3B),365},
  {_("v_div_scale_f64"),BIT(FMT_VOP3A)|BIT(FMT_VOP3B),366},
  //----------------------------------------------------------------------------
  {_("v_interp_p1_f32"),BIT(FMT_VINTRP),0},
  {_("v_interp_p2_f32"),BIT(FMT_VINTRP),1},
  {_("v_interp_mov_f32"),BIT(FMT_VINTRP),2},
  //----------------------------------------------------------------------------
  {_("ds_add_u32"),BIT(FMT_DS),0},
  {_("ds_sub_u32"),BIT(FMT_DS),1},
  {_("ds_rsub_u32"),BIT(FMT_DS),2},
  {_("ds_inc_u32"),BIT(FMT_DS),3},
  {_("ds_dec_u32"),BIT(FMT_DS),4},
  {_("ds_min_i32"),BIT(FMT_DS),5},
  {_("ds_max_i32"),BIT(FMT_DS),6},
  {_("ds_min_u32"),BIT(FMT_DS),7},
  {_("ds_max_u32"),BIT(FMT_DS),8},
  {_("ds_and_b32"),BIT(FMT_DS),9},
  {_("ds_or_b32"),BIT(FMT_DS),10},
  {_("ds_xor_b32"),BIT(FMT_DS),11},
  {_("ds_mskor_b32"),BIT(FMT_DS),12},
  {_("ds_write_b32"),BIT(FMT_DS),13},
  {_("ds_write2_b32"),BIT(FMT_DS),14},
  {_("ds_write2st64_b32"),BIT(FMT_DS),15},
  {_("ds_cmpst_b32"),BIT(FMT_DS),16},
  {_("ds_cmpst_f32"),BIT(FMT_DS),17},
  {_("ds_min_f32"),BIT(FMT_DS),18},
  {_("ds_max_f32"),BIT(FMT_DS),19},
  {_("ds_gws_init"),BIT(FMT_DS),25},
  {_("ds_gws_sema_v"),BIT(FMT_DS),26},
  {_("ds_gws_sema_br"),BIT(FMT_DS),27},
  {_("ds_gws_sema_p"),BIT(FMT_DS),28},
  {_("ds_gws_barrier"),BIT(FMT_DS),29},
  {_("ds_write_b8"),BIT(FMT_DS),30},
  {_("ds_write_b16"),BIT(FMT_DS),31},
  {_("ds_add_rtn_u32"),BIT(FMT_DS),32},
  {_("ds_sub_rtn_u32"),BIT(FMT_DS),33},
  {_("ds_rsub_rtn_u32"),BIT(FMT_DS),34},
  {_("ds_inc_rtn_u32"),BIT(FMT_DS),35},
  {_("ds_dec_rtn_u32"),BIT(FMT_DS),36},
  {_("ds_min_rtn_i32"),BIT(FMT_DS),37},
  {_("ds_max_rtn_i32"),BIT(FMT_DS),38},
  {_("ds_min_rtn_u32"),BIT(FMT_DS),39},
  {_("ds_max_rtn_u32"),BIT(FMT_DS),40},
  {_("ds_and_rtn_b32"),BIT(FMT_DS),41},
  {_("ds_or_rtn_b32"),BIT(FMT_DS),42},
  {_("ds_xor_rtn_b32"),BIT(FMT_DS),43},
  {_("ds_mksor_rtn_b32"),BIT(FMT_DS),44},
  {_("ds_wrxchg_rtn_b32"),BIT(FMT_DS),45},
  {_("ds_wrxchg2_rtn_b32"),BIT(FMT_DS),46},
  {_("ds_wrxchg2st64_rtn_b32"),BIT(FMT_DS),47},
  {_("ds_cmpst_rtn_b32"),BIT(FMT_DS),48},
  {_("ds_cmpst_rtn_f32"),BIT(FMT_DS),49},
  {_("ds_min_rtn_f32"),BIT(FMT_DS),50},
  {_("ds_max_rtn_f32"),BIT(FMT_DS),51},
  {_("ds_swizzle_b32"),BIT(FMT_DS),53},
  {_("ds_read_b32"),BIT(FMT_DS),54},
  {_("ds_read2_b32"),BIT(FMT_DS),55},
  {_("ds_read2st64_b32"),BIT(FMT_DS),56},
  {_("ds_read_i8"),BIT(FMT_DS),57},
  {_("ds_read_u8"),BIT(FMT_DS),58},
  {_("ds_read_i16"),BIT(FMT_DS),59},
  {_("ds_read_u16"),BIT(FMT_DS),60},
  {_("ds_consume"),BIT(FMT_DS),61},
  {_("ds_append"),BIT(FMT_DS),62},
  {_("ds_ordered_count"),BIT(FMT_DS),63},
  {_("ds_add_u64"),BIT(FMT_DS),64},
  {_("ds_sub_u64"),BIT(FMT_DS),65},
  {_("ds_rsub_u64"),BIT(FMT_DS),66},
  {_("ds_inc_u64"),BIT(FMT_DS),67},
  {_("ds_dec_u64"),BIT(FMT_DS),68},
  {_("ds_min_i64"),BIT(FMT_DS),69},
  {_("ds_max_i64"),BIT(FMT_DS),70},
  {_("ds_min_u64"),BIT(FMT_DS),71},
  {_("ds_max_u64"),BIT(FMT_DS),72},
  {_("ds_and_b64"),BIT(FMT_DS),73},
  {_("ds_or_b64"),BIT(FMT_DS),74},
  {_("ds_xor_b64"),BIT(FMT_DS),75},
  {_("ds_mskor_b64"),BIT(FMT_DS),76},
  {_("ds_write_b64"),BIT(FMT_DS),77},
  {_("ds_write2_b64"),BIT(FMT_DS),78},
  {_("ds_write2st64_b64"),BIT(FMT_DS),79},
  {_("ds_cmpst_b64"),BIT(FMT_DS),80},
  {_("ds_cmpst_f64"),BIT(FMT_DS),81},
  {_("ds_min_f64"),BIT(FMT_DS),82},
  {_("ds_max_f64"),BIT(FMT_DS),83},
  {_("ds_add_rtn_u64"),BIT(FMT_DS),96},
  {_("ds_sub_rtn_u64"),BIT(FMT_DS),97},
  {_("ds_rsub_rtn_u64"),BIT(FMT_DS),98},
  {_("ds_inc_rtn_u64"),BIT(FMT_DS),99},
  {_("ds_dec_rtn_u64"),BIT(FMT_DS),100},
  {_("ds_min_rtn_i64"),BIT(FMT_DS),101},
  {_("ds_max_rtn_i64"),BIT(FMT_DS),102},
  {_("ds_min_rtn_u64"),BIT(FMT_DS),103},
  {_("ds_max_rtn_u64"),BIT(FMT_DS),104},
  {_("ds_and_rtn_b64"),BIT(FMT_DS),105},
  {_("ds_or_rtn_b64"),BIT(FMT_DS),106},
  {_("ds_xor_rtn_b64"),BIT(FMT_DS),107},
  {_("ds_mskor_rtn_b64"),BIT(FMT_DS),108},
  {_("ds_wrxchg_rtn_b64"),BIT(FMT_DS),109},
  {_("ds_wrxchg2_rtn_b64"),BIT(FMT_DS),110},
  {_("ds_wrxchg2st64_rtn_b64"),BIT(FMT_DS),111},
  {_("ds_cmpst_rtn_b64"),BIT(FMT_DS),112},
  {_("ds_cmpst_rtn_f64"),BIT(FMT_DS),113},
  {_("ds_min_rtn_f64"),BIT(FMT_DS),114},
  {_("ds_max_rtn_f64"),BIT(FMT_DS),115},
  {_("ds_read_b64"),BIT(FMT_DS),118},
  {_("ds_read2_b64"),BIT(FMT_DS),119},
  {_("ds_read2st64_b64"),BIT(FMT_DS),120},
  {_("ds_add_src2_u32"),BIT(FMT_DS),128},
  {_("ds_sub_src2_u32"),BIT(FMT_DS),129},
  {_("ds_rsub_src2_u32"),BIT(FMT_DS),130},
  {_("ds_inc_src2_u32"),BIT(FMT_DS),131},
  {_("ds_dec_src2_u32"),BIT(FMT_DS),132},
  {_("ds_min_src2_i32"),BIT(FMT_DS),133},
  {_("ds_max_src2_i32"),BIT(FMT_DS),134},
  {_("ds_min_src2_u32"),BIT(FMT_DS),135},
  {_("ds_max_src2_u32"),BIT(FMT_DS),136},
  {_("ds_and_src2_b32"),BIT(FMT_DS),137},
  {_("ds_or_src2_b32"),BIT(FMT_DS),138},
  {_("ds_xor_src2_b32"),BIT(FMT_DS),139},
  {_("ds_write_src2_b32"),BIT(FMT_DS),140},
  {_("ds_min_src2_f32"),BIT(FMT_DS),146},
  {_("ds_max_src2_f32"),BIT(FMT_DS),147},
  {_("ds_add_src2_u64"),BIT(FMT_DS),192},
  {_("ds_sub_src2_u64"),BIT(FMT_DS),193},
  {_("ds_rsub_src2_u64"),BIT(FMT_DS),194},
  {_("ds_inc_src2_u64"),BIT(FMT_DS),195},
  {_("ds_dec_src2_u64"),BIT(FMT_DS),196},
  {_("ds_min_src2_i64"),BIT(FMT_DS),197},
  {_("ds_max_src2_i64"),BIT(FMT_DS),198},
  {_("ds_min_src2_u64"),BIT(FMT_DS),199},
  {_("ds_max_src2_u64"),BIT(FMT_DS),200},
  {_("ds_and_src2_b64"),BIT(FMT_DS),201},
  {_("ds_or_src2_b64"),BIT(FMT_DS),202},
  {_("ds_xor_src2_b64"),BIT(FMT_DS),203},
  {_("ds_write_src2_b64"),BIT(FMT_DS),204},
  {_("ds_min_src2_f64"),BIT(FMT_DS),210},
  {_("ds_max_src2_f64"),BIT(FMT_DS),211},
  //----------------------------------------------------------------------------
  {_("buffer_load_format_x"),BIT(FMT_MUBUF),0},
  {_("buffer_load_format_xy"),BIT(FMT_MUBUF),1},
  {_("buffer_load_format_xyz"),BIT(FMT_MUBUF),2},
  {_("buffer_load_format_xyzw"),BIT(FMT_MUBUF),3},
  {_("buffer_store_format_x"),BIT(FMT_MUBUF),4},
  {_("buffer_store_format_xy"),BIT(FMT_MUBUF),5},
  {_("buffer_store_format_xyz"),BIT(FMT_MUBUF),6},
  {_("buffer_store_format_xyzw"),BIT(FMT_MUBUF),7},
  {_("buffer_load_ubyte"),BIT(FMT_MUBUF),8},
  {_("buffer_load_sbyte"),BIT(FMT_MUBUF),9},
  {_("buffer_load_ushort"),BIT(FMT_MUBUF),10},
  {_("buffer_load_sshort"),BIT(FMT_MUBUF),11},
  {_("buffer_load_dword"),BIT(FMT_MUBUF),12},
  {_("buffer_load_dwordx2"),BIT(FMT_MUBUF),13},
  {_("buffer_load_dwordx4"),BIT(FMT_MUBUF),14},
  {_("buffer_store_byte"),BIT(FMT_MUBUF),24},
  {_("buffer_store_short"),BIT(FMT_MUBUF),26},
  {_("buffer_store_dword"),BIT(FMT_MUBUF),28},
  {_("buffer_store_dwordx2"),BIT(FMT_MUBUF),29},
  {_("buffer_store_dwordx4"),BIT(FMT_MUBUF),30},
  {_("buffer_atomic_swap"),BIT(FMT_MUBUF),48},
  {_("buffer_atomic_cmpswap"),BIT(FMT_MUBUF),49},
  {_("buffer_atomic_add"),BIT(FMT_MUBUF),50},
  {_("buffer_atomic_sub"),BIT(FMT_MUBUF),51},
  {_("buffer_atomic_rsub"),BIT(FMT_MUBUF),52},
  {_("buffer_atomic_smin"),BIT(FMT_MUBUF),53},
  {_("buffer_atomic_umin"),BIT(FMT_MUBUF),54},
  {_("buffer_atomic_smax"),BIT(FMT_MUBUF),55},
  {_("buffer_atomic_umax"),BIT(FMT_MUBUF),56},
  {_("buffer_atomic_and"),BIT(FMT_MUBUF),57},
  {_("buffer_atomic_or"),BIT(FMT_MUBUF),58},
  {_("buffer_atomic_xor"),BIT(FMT_MUBUF),59},
  {_("buffer_atomic_inc"),BIT(FMT_MUBUF),60},
  {_("buffer_atomic_dec"),BIT(FMT_MUBUF),61},
  {_("buffer_atomic_fcmpswap"),BIT(FMT_MUBUF),62},
  {_("buffer_atomic_fmin"),BIT(FMT_MUBUF),63},
  {_("buffer_atomic_fmax"),BIT(FMT_MUBUF),64},
  {_("buffer_atomic_swap_x2"),BIT(FMT_MUBUF),80},
  {_("buffer_atomic_cmpswap_x2"),BIT(FMT_MUBUF),81},
  {_("buffer_atomic_add_x2"),BIT(FMT_MUBUF),82},
  {_("buffer_atomic_sub_x2"),BIT(FMT_MUBUF),83},
  {_("buffer_atomic_rsub_x2"),BIT(FMT_MUBUF),84},
  {_("buffer_atomic_smin_x2"),BIT(FMT_MUBUF),85},
  {_("buffer_atomic_umin_x2"),BIT(FMT_MUBUF),86},
  {_("buffer_atomic_smax_x2"),BIT(FMT_MUBUF),87},
  {_("buffer_atomic_umax_x2"),BIT(FMT_MUBUF),88},
  {_("buffer_atomic_and_x2"),BIT(FMT_MUBUF),89},
  {_("buffer_atomic_or_x2"),BIT(FMT_MUBUF),90},
  {_("buffer_atomic_xor_x2"),BIT(FMT_MUBUF),91},
  {_("buffer_atomic_inc_x2"),BIT(FMT_MUBUF),92},
  {_("buffer_atomic_dec_x2"),BIT(FMT_MUBUF),93},
  {_("buffer_atomic_fcmpswap_x2"),BIT(FMT_MUBUF),94},
  {_("buffer_atomic_fmin_x2"),BIT(FMT_MUBUF),95},
  {_("buffer_atomic_fmax_x2"),BIT(FMT_MUBUF),96},
  {_("buffer_wbinvl1_sc"),BIT(FMT_MUBUF),112},
  {_("buffer_wbinvl1"),BIT(FMT_MUBUF),113},
  //----------------------------------------------------------------------------
  {_("tbuffer_load_format_x"),BIT(FMT_MTBUF),0},
  {_("tbuffer_load_format_xy"),BIT(FMT_MTBUF),1},
  {_("tbuffer_load_format_xyz"),BIT(FMT_MTBUF),2},
  {_("tbuffer_load_format_xyzw"),BIT(FMT_MTBUF),3},
  {_("tbuffer_store_format_x"),BIT(FMT_MTBUF),4},
  {_("tbuffer_store_format_xy"),BIT(FMT_MTBUF),5},
  {_("tbuffer_store_format_xyz"),BIT(FMT_MTBUF),6},
  {_("tbuffer_store_format_xyzw"),BIT(FMT_MTBUF),7},
  //----------------------------------------------------------------------------
  {_("image_load"),BIT(FMT_MIMG),0},
  {_("image_load_mip"),BIT(FMT_MIMG),1},
  {_("image_load_pck"),BIT(FMT_MIMG),2},
  {_("image_load_pck_sgn"),BIT(FMT_MIMG),3},
  {_("image_load_mip_pck"),BIT(FMT_MIMG),4},
  {_("image_load_mip_pck_sgn"),BIT(FMT_MIMG),5},
  {_("image_store"),BIT(FMT_MIMG),8},
  {_("image_store_mip"),BIT(FMT_MIMG),9},
  {_("image_store_pck"),BIT(FMT_MIMG),10},
  {_("image_store_mip_pck"),BIT(FMT_MIMG),11},
  {_("image_get_resinfo"),BIT(FMT_MIMG),14},
  {_("image_atomic_swap"),BIT(FMT_MIMG),15},
  {_("image_atomic_cmpswap"),BIT(FMT_MIMG),16},
  {_("image_atomic_add"),BIT(FMT_MIMG),17},
  {_("image_atomic_sub"),BIT(FMT_MIMG),18},
  {_("image_atomic_rsub"),BIT(FMT_MIMG),19},
  {_("image_atomic_smin"),BIT(FMT_MIMG),20},
  {_("image_atomic_umin"),BIT(FMT_MIMG),21},
  {_("image_atomic_smax"),BIT(FMT_MIMG),22},
  {_("image_atomic_umax"),BIT(FMT_MIMG),23},
  {_("image_atomic_and"),BIT(FMT_MIMG),24},
  {_("image_atomic_or"),BIT(FMT_MIMG),25},
  {_("image_atomic_xor"),BIT(FMT_MIMG),26},
  {_("image_atomic_inc"),BIT(FMT_MIMG),27},
  {_("image_atomic_dec"),BIT(FMT_MIMG),28},
  {_("image_atomic_fcmpswap"),BIT(FMT_MIMG),29},
  {_("image_atomic_fmin"),BIT(FMT_MIMG),30},
  {_("image_atomic_fmax"),BIT(FMT_MIMG),31},
  {_("image_sample"),BIT(FMT_MIMG),32},
  {_("image_sample_cl"),BIT(FMT_MIMG),33},
  {_("image_sample_d"),BIT(FMT_MIMG),34},
  {_("image_sample_d_cl"),BIT(FMT_MIMG),35},
  {_("image_sample_l"),BIT(FMT_MIMG),36},
  {_("image_sample_b"),BIT(FMT_MIMG),37},
  {_("image_sample_b_cl"),BIT(FMT_MIMG),38},
  {_("image_sample_lz"),BIT(FMT_MIMG),39},
  {_("image_sample_c"),BIT(FMT_MIMG),40},
  {_("image_sample_c_cl"),BIT(FMT_MIMG),41},
  {_("image_sample_d"),BIT(FMT_MIMG),42},
  {_("image_sample_d_cl"),BIT(FMT_MIMG),43},
  {_("image_sample_l"),BIT(FMT_MIMG),44},
  {_("image_sample_b"),BIT(FMT_MIMG),45},
  {_("image_sample_b_cl"),BIT(FMT_MIMG),46},
  {_("image_sample_c_lz"),BIT(FMT_MIMG),47},
  {_("image_sample_o"),BIT(FMT_MIMG),48},
  {_("image_sample_cl_o"),BIT(FMT_MIMG),49},
  {_("image_sample_d_o"),BIT(FMT_MIMG),50},
  {_("image_sample_d_cl_o"),BIT(FMT_MIMG),51},
  {_("image_sample_l_o"),BIT(FMT_MIMG),52},
  {_("image_sample_b_o"),BIT(FMT_MIMG),53},
  {_("image_sample_b_cl_o"),BIT(FMT_MIMG),54},
  {_("image_sample_lz_o"),BIT(FMT_MIMG),55},
  {_("image_sample_c_o"),BIT(FMT_MIMG),56},
  {_("image_sample_c_cl_o"),BIT(FMT_MIMG),57},
  {_("image_sample_c_d_o"),BIT(FMT_MIMG),58},
  {_("image_sample_c_d_cl_o"),BIT(FMT_MIMG),59},
  {_("image_sample_c_l_o"),BIT(FMT_MIMG),60},
  {_("image_sample_c_b_o"),BIT(FMT_MIMG),61},
  {_("image_sample_c_b_cl_o"),BIT(FMT_MIMG),62},
  {_("image_sample_c_lz_o"),BIT(FMT_MIMG),63},
  {_("image_gather4"),BIT(FMT_MIMG),64},
  {_("image_gather4_cl"),BIT(FMT_MIMG),65},
  {_("image_gather4_l"),BIT(FMT_MIMG),66},
  {_("image_gather4_b"),BIT(FMT_MIMG),67},
  {_("image_gather4_b_cl"),BIT(FMT_MIMG),68},
  {_("image_gather4_b_lz"),BIT(FMT_MIMG),69},
  {_("image_gather4_c"),BIT(FMT_MIMG),70},
  {_("image_gather4_c_cl"),BIT(FMT_MIMG),71},
  {_("image_gather4_c_l"),BIT(FMT_MIMG),76},
  {_("image_gather4_c_b"),BIT(FMT_MIMG),77},
  {_("image_gather4_c_b_cl"),BIT(FMT_MIMG),78},
  {_("image_gather4_c_lz"),BIT(FMT_MIMG),79},
  {_("image_gather4_o"),BIT(FMT_MIMG),80},
  {_("image_gather4_cl_o"),BIT(FMT_MIMG),81},
  {_("image_gather4_l_o"),BIT(FMT_MIMG),84},
  {_("image_gather4_b_o"),BIT(FMT_MIMG),85},
  {_("image_gather4_b_cl_o"),BIT(FMT_MIMG),86},
  {_("image_gather4_lz_o"),BIT(FMT_MIMG),87},
  {_("image_gather4_c_o"),BIT(FMT_MIMG),88},
  {_("image_gather4_c_cl_o"),BIT(FMT_MIMG),89},
  {_("image_gather4_c_l_o"),BIT(FMT_MIMG),92},
  {_("image_gather4_c_b_o"),BIT(FMT_MIMG),93},
  {_("image_gather4_c_b_cl_o"),BIT(FMT_MIMG),94},
  {_("image_gather4_c_lz_o"),BIT(FMT_MIMG),95},
  {_("image_get_lod"),BIT(FMT_MIMG),96},
  {_("image_sample_cd"),BIT(FMT_MIMG),104},
  {_("image_sample_cd_cl"),BIT(FMT_MIMG),105},
  {_("image_sample_c_cd"),BIT(FMT_MIMG),106},
  {_("image_sample_c_cd_cl"),BIT(FMT_MIMG),107},
  {_("image_sample_cd_o"),BIT(FMT_MIMG),108},
  {_("image_sample_cd_cl_o"),BIT(FMT_MIMG),109},
  {_("image_sample_c_cd_o"),BIT(FMT_MIMG),110},
  {_("image_sample_c_cd_cl_o"),BIT(FMT_MIMG),111},
  //----------------------------------------------------------------------------
  {_("export"),BIT(FMT_EXP),0},
  //----------------------------------------------------------------------------
  {0,0,0}
};
k_u8 *fs_mnemonic[F_INVALID]={
[F_SSRC0]=_("ssrc0"),
[F_SSRC1]=_("ssrc1"),
[F_SDST]=_("sdst"),
[F_SIMM16]=_("simm16"),
[F_OFFSET]=_("offset"),
[F_IMM]=_("imm"),
[F_SBASE]=_("sbase"),
[F_SRC0]=_("src0"),
[F_SRC1]=_("src1"),
[F_SRC2]=_("src2"),
[F_VSRC0]=_("vsrc0"),
[F_VSRC1]=_("vsrc1"),
[F_VSRC2]=_("vsrc2"),
[F_VSRC3]=_("vsrc3"),
[F_VDST]=_("vdst"),
[F_ABS]=_("abs"),
[F_CLAMP]=_("clamp"), 
[F_OMOD]=_("omod"),
[F_NEG]=_("neg"),
[F_VSRC]=_("vsrc"),
[F_ATTRCHAN]=_("attrchan"),
[F_ATTR]=_("attr"),
[F_OFFSET0]=_("offset0"),
[F_OFFSET1]=_("offset1"),
[F_GDS]=_("gds"),
[F_ADDR]=_("addr"),
[F_DATA0]=_("data0"),
[F_DATA1]=_("data1"),
[F_OFFEN]=_("offen"),
[F_IDXEN]=_("idxen"),
[F_GLC]=_("glc"),
[F_ADDR64]=_("addr64"),
[F_LDS]=_("lds"),
[F_VADDR]=_("vaddr"),
[F_VDATA]=_("vdata"), 
[F_SRSRC]=_("srsrc"),
[F_SLC]=_("slc"),
[F_TFE]=_("tfe"),
[F_SOFFSET]=_("soffset"),
[F_DFMT]=_("dfmt"),
[F_NFMT]=_("nfmt"),
[F_DMASK]=_("dmask"),
[F_UNORM]=_("unorm"),
[F_DA]=_("da"),
[F_R128]=_("r128"),
[F_LWE]=_("lwe"),
[F_SSAMP]=_("ssamp"),
[F_EN]=_("en"),
[F_TGT]=_("tgt"),
[F_COMPR]=_("compr"),
[F_DONE]=_("done"),
[F_VM]=_("vm"),
[F_VM_CNT]=_("vm_cnt"),
[F_EXP_CNT]=_("exp_cnt"),
[F_LGKM_CNT]=_("lgkm_cnt")
};
#undef _
#else
extern struct i_mnemonic_map i_mnemonic_maps[];
extern k_u8 *fs_mnemonic[F_INVALID];
#endif
#endif
